package com.baitengsoft.patentservicemonitor.job.utils;

import org.apache.commons.lang.StringUtils;

/**
 * Created by Zhe Ding on 2016/11/29.
 */
public class GetPatenteeType {

   public static String findType(String patentee){
        String type = type1(patentee);

        if(StringUtils.isNotEmpty(type)){
            return type;
        }

        type = type2(patentee);
        if(StringUtils.isNotEmpty(type)){
            return type;
        }

        type = type3(patentee);
        if(StringUtils.isNotEmpty(type)){
            return type;
        }

        type = type4(patentee);
        if(StringUtils.isNotEmpty(type)){
            return type;
        }

        type = type5(patentee);
        if(StringUtils.isNotEmpty(type)){
            return type;
        }

        return t6;
    }

    static String type1(String patentee){
        for(String suffix : type1.split("#")){
            if(patentee.contains(suffix)){
                return t1;
            }
        }
        if(patentee.contains("厂")){
            if(patentee.lastIndexOf("厂")>=4||(patentee.length()-patentee.lastIndexOf("厂"))>4){
                return t1;
            }
        }
        int length = patentee.length();
        if("室行场店部".contains(patentee.substring(length-1))&&length>4){
            return t1;
        }
        return "";
    }

    static String type2(String patentee){
        if(patentee.length()>=4){
            for(String str : type2.split("#")){
                if(patentee.endsWith(str)&&patentee.length()>=str.length()+2){
                    return t2;
                }
            }
        }
        return "";
    }

    static String type3(String patentee){
        for(String str : type3.split("#")){
            if(patentee.endsWith(str)){
                return t3;
            }
        }
        return "";
    }

    static String type4(String patentee){
        for(String str : type4.split("#")){
            if(patentee.contains(str)){
                return t4;
            }
        }
        if(patentee.contains("研究")){
            if(patentee.contains("中心")||patentee.contains("协会")){
                return t4;
            }
        }
        return "";
    }

    static String type5(String patentee){
        for(String str : type5.split("#")){
            if(patentee.endsWith(str)){
                return t5;
            }
        }
        if(patentee.length()>=5&&patentee.endsWith("局")){
            return t5;
        }
        return  "";
    }

    private static final String type1 = "公司#集团#株式会#设计室#公社#大厦#商社#画廊#联合社#商会#贸易行#经营部#设计室#银行#商行#企业#"+
            "设计事务所#设计制作所#防治所#诊所#事务所#开发所#基地#卫生所#交易所#会社#出版社#电视台#" +
            "设计院#研发中心#测试中心#培训中心#维护中心";

    private static final String type2 = "中心校#大学#学院#学校#中学#小学#高中#科学技术院";

    private static final String type3 = "基金会#博物馆#天文台#红十字会#保护区#航学会#图书馆#编委会#博物院#评剧院#养老院#敬老院";

    private static final String type4 = "物理学会#研究学会#科研三所#研究开发中心#预防控制所#研究会#试验所#设计服务所#研究试验中心#" +
            "研究机构#科研监测所#技术研究院#研究测试中心#研究组织#科学技术振兴机构#设计院#研究促进协会#" +
            "研究院#研究所#研究中心#实验室#科学院#研究总院#研究设计中心#研究局#研究委员会#科学技术院#" +
            "发展中心#研究开发院#三角协会#检测评定中心#研究服务中心#研究开发机构#研究开发协会#科技开发院#" +
            "研究室#科研所#研究设计所#科学研究#研究协会#授时中心#科研中心#预报中心#科学中心#气象中心#" +
            "海洋技术中心#技术开发中心#实验测试中心#国家农业科学院#国家高等卫生院#国家公共卫生学院#" +
            "富卡尼中心#分析测试中心#国家中心#预防控制中心#遥感中心#探测中心";

    private static final String type5 = "工会#委员会#检验所#监察所#检定所#检测所#管理所#测试所#修理所#修理站#监测所#指导站#政府#检疫实验所#" +
            "检测中心#促进中心#安全所#振兴厅#公安厅#办公厅#运输厅#教育厅#科学技术厅#国土资源厅#水利厅#工业厅#" +
            "农业厅#交通厅#卫生厅#矿产厅#文化厅#劳动厅#安全厅#建设厅#科技厅#电视厅#山林厅#林业厅#道厅#县厅#人事厅#" +
            "监察厅#保障厅#粮食厅#人事厅#财政厅#民政厅#机械厅#国防部#管理处#公路处#科技处#监测处#工业处#地病处#" +
            "机营处#通信处#电务处#十四处#车辆处#工程处#技术处#解放军#国防部#国防大臣#海洋应用中心#检验中心#" +
            "管理中心#管理局#监测中心#应急处理#地理信息中心#减灾中心#调度通信中心#储备库#安全部#中转库#环境局#" +
            "发展局#计量站#计算中心#计量中心#武装力量#防治总站#发展署#发展机构#票证站#太空总署#医院#电视总局#" +
            "广电总局#地理信息局#国家服务处#部队#地面站#训练中心#工程局#医学中心#应用中心#服务总站#保健院";

    private static final String t1 = "企业";
    private static final String t2 = "院校";
    private static final String t3 = "其他";
    private static final String t4 = "科研机构";
    private static final String t5 = "机关团体";
    private static final String t6 = "个人";

}
